package xju.rjxy.shop.mapper;

import xju.rjxy.shop.model.domain.Friend;
import xju.rjxy.shop.model.vo.FriendVO;

import java.util.List;

/**
 * 好友数据访问接口
 */
public interface FriendMapper {
    /**
     * 查询好友列表
     */
    List<FriendVO> selectFriendList();
    
    /**
     * 根据用户ID查询好友列表
     */
    List<FriendVO> selectByUserId(Integer userId);
    
    /**
     * 根据分组查询好友列表
     */
    List<FriendVO> selectByTag(Integer userId, String tag);
    
    /**
     * 删除好友
     */
    int deleteFriend(Integer userId, Integer friendId);
    
    /**
     * 添加好友
     */
    int insertFriend(Friend friend);
    
    /**
     * 更新好友分组
     */
    int updateFriendTag(Integer userId, Integer friendId, String tag);
    
    /**
     * 查询单个好友详情
     */
    FriendVO selectFriendInfo(Integer userId, Integer friendId);

    int updateFriendStatus(Integer userId, Integer friendId, Integer flag, String statusCode);

    List<FriendVO> selectPendingRequestList(Integer userId);

    List<FriendVO> selectAllFriendsWithPending(Integer userId);

    /**
     * 分页查询所有好友（含待确认）
     */
    List<FriendVO> selectAllFriendsWithPendingPage(Integer userId, int offset, int limit);

    /**
     * 查询所有好友（含待确认）总数
     */
    int selectAllFriendsWithPendingTotal(Integer userId);
} 